package com.cskaoyan.javase.oop1._13block._2static._0introduction;
/**
 * 什么是静态代码块？
 * 定义在类的成员位置，使用以下声明方式声明的代码块，称之为静态代码块
 * static {
 * }
 * 作用:
 * 随着类加载的过程而执行，静态代码块可以看成是一个在类加载过程中
 * 会自动调用的静态方法！用于给静态成员变量赋值！
 *
 * 总结到目前为止在类加载过程中,给静态成员变量赋值的手段:
 *      1.默认初始化
 *      2.显式赋值
 *      3.静态代码块赋值
 * 以上赋值,默认初始化最先进行
 * 而显式赋值和静态代码块赋值,是按照代码的书写顺序从上往下执行.
 *
 * @since 16:26
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        System.out.println(A.num);
    }
}
class A{

    static {
        num = 20;
    }
    static int num = 10;

}
